Haarnoja, T., Tang, H., Abbeel, P., & Levine, S. (2017). Reinforcement learning with deep energy-based policies. 34th International Conference on Machine Learning, ICML 2017, 3, 2171–2186.
1. 论文概述
本文将最大化熵方法运用在连续状态和动作空间的强化学习方法中,设计了名为 soft Q-learning 的算法。这种算法的优点是提高探索效率,并且便于让智能体在不同任务中共享学习到的技能。
强化学习可以使用确定性策略和随机策略。随机策略可以提高探索率,但是这种探索率通常是通过引入噪声或者初始化一个熵很高的随机策略。随机策略在某些场景下有些潜在优点,比如随机策略可以实现很高的探索率和组合性(组合性是指与其他算法结合的难易程度)。另外在面对不确定的动态属性,随机策略能表现出很好的鲁棒性,并且提高计算效率和收敛。
当我们将最优控制和概率推理联系起来的时候,随机策略就是一个最优解决方案。直观上,将控制问题视为推理的过程,目的不是为了产生一个确定性的 the lowest cost 行为,而是产生一系列的 low-cost 行为,并且最大化对应策略的熵。假设我们能学习到了完成任务的所有途径,那么完成任务的最优途径实际上只是学习到的所有途径中的一个具体化。
因此这种最大化熵的随机策略可以视为更具体的行为和复杂的任务的一个初始化。例如用这种方法训练一个 robot 向前走的 model,然后这个 model 作为下次训练 robot 跳跃、奔跑的初始化参数。随机策略也可以作为多模态奖励场景下的探索机制,并且在处理干扰时鲁棒性更强。
但是将最大化熵与随机策略结合并应用在连续的状态和动作空间,以及任意类型的策略分布上是具有挑战性的。本文的贡献是将随机策略和最大化熵结合,提出一个容易训练并且高效的算法:soft Q-learning 算法。
2. 相关知识
2.1 Energy based model
在这里补充一下基于能量的模型的概念。基于能量模型可以表示为:
其中 $Z(\theta) = \int \exp(f_\theta(x)) dx$ 是归一化常数,也可以叫做 partition function 。
2.1 Maximum Entropy Reinforcement Learning
标准的强化学习算法优化目标为:
最大熵强化学习算法优化目标为:
其中 $\alpha$ 是衡量 reward 和 entropy 之间重要性的超参数。与 Boltzmann exploration [1] 和 PGQ [2] 算法不同的是,公式 $\eqref{3}$ 不是最大化当前时间步骤的熵,而是使得策略 $\pi$ 整个轨迹的熵最大化。
2.2 Soft Value Functions and Energy-Based Models
传统的强化学习方法策略通常是一个单峰的分布 (unimodal policy distribution),比如高斯策略,如下图左图所示。而我们想要探索整个动作分布,可以对动作值函数取幂,就形成了多峰策略分布 (multimodal policy distribution),如下图右图所示。
\multimodal policy distribution.PNG)
本文使用了一种一般 energy-based 的策略定义形式:
其中 $\mathcal{E}$ 是 energy function,可以用神经网络表示。本文将能量模型 $\mathcal{E}(s_t,a_t)$ 和 soft 状态函数、动作值函数结合起来。如下面定理 1。
定理 1:定义 soft 动作值函数为:
定义 soft 状态值函数为:
那么得到公式 $\eqref{3}$ 的最优策略为:
公式 $\eqref{6}$ 中的 soft 状态值函数是 LogSumExp 形式,是一种 smooth maximum。公式 $\eqref{7}$ 中的 $\frac{1}{\alpha} Q_{soft}(s_t,a_t)$ 称为 negative energy,$\frac{1}{\alpha}V_{soft}(s_t)$ 称为 log-partition function。本文的附录 A.1 证明了公式 $\eqref{7}$ 表示的新策略可以提高熵和动作值函数的和,也就是可以实现 Policy improvement 。
本文还推导了 soft 贝尔曼方程的表达式:
定理 2: soft 贝尔曼方程的表达式为:
本文的附录 A.2 证明了公式 $\eqref{8}$ 成立。
3. 具体算法
3.1 Soft Q-Iteration
通过压缩映射可以证明:
会收敛到 $Q^_{soft}$ 和 $V^_{soft}$ 。本文的附录 A.2 有证明。
但是还有几个点需要取考虑。比如如何将 soft 贝尔曼方程运用在连续和大规模的状态、动作空间,如何对基于能量模型的策略进行采样。
3.2 Soft Q-learning
由于公式 $\eqref{10}$ 中含有积分项,处理起来比较困难,作者使用随机优化方法对上述公式进行优化。首先对 soft Q 函数进行函数逼近,表示为 $Q^\theta_{soft}(s_t,a_t)$。
通过重要性采样得到公式 $\eqref{10}$ 的期望形式:
其中 $q_{a’}$ 可以是动作空间的任意分布。
通过对 soft Q 构造最小平方误差目标函数:
其中 $\hat{Q}_{soft}^\bar{\theta}(s_t,a_t) = r_t + \gamma \mathbb{E}_{s_{t+1} \sim p_{s}}[V_{soft}^\bar{\theta}(s_{t+1})]$ 是目标 Q 值,可以通过公式 $\eqref{11}$ 得到的 $V_{soft}^\bar{\theta}(s_{t+1})$ 进行计算,$\bar{\theta}$ 表示目标网络的参数。
到了这里,我们可以利用采样的状态和动作进行随机梯度下降来解决公式 $\eqref{12} $ 的最小化问题。 对于 $q_{s_t}$ 和 $q_{a_t}$,可以使用策略 $\pi(a_t|s_t) \propto \exp(\frac{1}{\alpha} Q_{soft}^\theta(s_t,a_t))$ 的样本,也可以使用均匀分布进行采样。但是对于连续的状态、动作空间,使用均匀采样会产生高维度的数据,因此最好的选择是使用当前策略。
问题是如何从当前策略 $\pi(a_t|s_t) \propto \exp(\frac{1}{\alpha} Q_{soft}^\theta(s_t,a_t))$ 进行采样呢?公式 $\eqref{7}$ 只是一个一般形式,从公式 $\eqref{7}$ 采样是不可能的,因此需要一个 approximate sampling 的过程。
3.3 Approximate Sampling and SVGD
当前从基于能量模型的策略中采样主要有两种方法:一种是基于马尔科夫链的蒙特卡罗(MCMC)采样,另一种是构造采样网络,训练成输出与目标分布相似的样本。基于 MCMC 的方法不适用于一边执行策略,一边采样,因此本文利用基于 Stein variational gradient (SVGD) 的采样网络 [3] 和 amortized SVGD [4] 。
使用 amortized SVGD 有三个好处:
- 提供了一个随机的采样网络。
- 可以收敛到精确的模型后验分布。
- 与 AC 算法相似,可以同 AC 算法联系起来,这就有了之后的 SAC 算法。
学习的随机采样网络可以表示为 $a_t = f^\phi (\xi;s_t)$,其中 $\phi$ 表示网络的参数,$\xi$ 表示噪声,可以是高斯分布或者其它随机分布。为了将采样网络训练成与 $Q^\theta_{soft}$ 对应的策略模型,我们定义该策略模型为 $\pi^\phi(a_t|s_t)$,并且目标是近似基于能量模型的策略,即公式 $\eqref{7}$ 。利用 KL 散度来衡量两个分布的近似程度,因此目标函数的表达式如下:
SVGD 提供了一个最贪婪的梯度方向:
其中 $\kappa$ 表示核函数,通常使用高斯核函数。
实际上 $\Delta f^\phi$ 只是 $\kappa$ 的再生核希尔伯特空间中的最优梯度方向,严格来说并不是公式 $\eqref{13} $ 的梯度。但是论文 [4] 中证明了 $\frac{\partial J_\pi}{\partial a_t} \propto \Delta f^\phi$ 。因此可以利用链式法则将 SVGD 应用到策略网络的梯度求解中:
结合以上推导,可以得到 SQL 算法的伪代码如下:
\SQL.PNG)
但是还有两个地方需要注意,一个是采样策略 $q_{a’}$ 怎么确定,二是公式 $\eqref{15}$ 具体应该怎么算。
3.4 确定 $q_{a’}$
在前面的 3.2 节已经说明 $q_{a’}$ 最好是使用策略 $\pi(a_t|s_t) \propto \exp(\frac{1}{\alpha} Q_{soft}^\theta(s_t,a_t))$ 的样本,因此可以直接从采样网络 $a’=f^\phi(\xi’;s)$ 进行采样。不过采样网络在初期训练时,并不能产生能很好估计 $V^\theta_{soft}$ 的样本,因此可以选择在初期训练时选择均匀采样策略,在后期训练时采用当前采样网路。
3.5 计算 $\frac{\part J_\pi(\phi;s_t)}{\part \phi}$
注意以下解释使用的符号 $i$ 和 $j$ 与伪代码中不对应。
结合公式 $\eqref{14}$ 和公式 $\eqref{15}$,可以知道 SVGD 需要计算两次期望。为了计算公式 $\eqref{14}$ 的期望,需要进行一次采样求平均:$a_t^{(i)} = f^\phi(\xi^{(i)})$ 。同样为了计算公式 $\eqref{15}$ 中的期望,也要进行一次采样求平均:$\tilde{a}_t^{(j)} = f^\phi(\tilde{\xi}^{(j)})$ 。这两次采样的结果可能相同也可能不同,但是是分别对应两次期望的采样。
将公式 $\eqref{14}$ 代入公式 $\eqref{15}$,可以得到:
伪代码中的 $\hat \nabla_\phi J_\pi$ 是 $\hat \nabla_\phi J_\pi(\phi;s_t)$ 对于 mini-batch 的平均。
另外 $\nabla_{a’} Q^\theta_{soft}(s_t,a’)$ 的求解实际上不是对公式 $\eqref{9} $ 中的 $Q_{soft}(s_t,a’)$ 进行理论求导, 这极其复杂并且无法计算。实际上 $Q^\theta_{soft}(s_t,a’)$ 是 $Q_{soft}(s_t,a’)$ 的神经网络逼近形式,很明显 $\nabla_{a’} Q^\theta_{soft}(s_t,a’)$ 的求解可以在神经网络中运用链式法则,对输入 $a’$ 进行求导。
4.工程设置
学习率:Q 网络的学习率为 0.001,策略采样网络的学习率为 0.0001 。使用 ADAM 优化器。
经验回放池大小:一百万。样本超过一万才进行训练。
Mini-batch 大小:64 。
每次迭代的时间步长:10000 。
网络结构: Q 网络和策略采样网络都采用两层隐藏层,每层 200 格隐藏单元,激活函数采用 ReLU 。
添加噪声:OU 噪声。
核函数 $\kappa$ :$\kappa(a,a’) = \exp(-\frac{1}{h} | a - a’ |^2_2)$, $h = \frac{d}{2 \log (M+1)}$ ,其中 $d$ 表示采样动作 $a_t^{(i)}$ 的成对距离的中值。
熵权重系数 $\alpha$ 不同环境设置不同,但是都会在短时间内降火,设置是在 200 个 epochs 中 log 线性速度降火到 0.001 。
参考文献
[1] Sallans, B. and Hinton, G. E. Reinforcement learning with factored states and actions. Journal ofMachine Learning Research, 5(Aug):1063–1088, 2004.
[2] O’Donoghue, B., Munos, R., Kavukcuoglu, K., and Mnih, V. PGQ: Combining policy gradient and Q-learning. arXiv preprint arXiv:1611.01626, 2016.
[3] Liu, Q. and Wang, D. Stein variational gradient descent: A general purpose bayesian inference algorithm. In Advances In Neural Information Processing Systems, pp. 2370–2378, 2016.
[4] Wang, D. and Liu, Q. Learning to draw samples: With application to amortized mle for generative adversarial learning. arXiv preprint arXiv:1611.01722, 2016.